package com.ushine.web.template.authority.facade;

import com.ushine.web.base.model.system.UserDO;
import com.ushine.web.component.exception.ServiceException;
import com.ushine.web.template.authority.model.StaffDO;
import com.ushine.web.template.authority.view.StaffVO;

import java.util.List;

/**
 * @Author: yls
 * @Date: 2022/03/01 12:29
 * @Description:
 * @Version 1.0
 */
public interface IStaffFacade {

    /**
     * 功能描述:
     * 〈 获取所有的员工信息，带数据权限 〉
     *
     * @return : java.util.List<com.ushine.web.web.authority.model.StaffDO>
     * @author : yls
     * @date : 2022/03/01 09:53
     */
    List<StaffVO> listStaffByPermission();

    /**
     * 功能描述:
     * 〈 获取所有的员工信息，带数据权限，多线程 〉
     *
     * @param user 用户信息
     * @return : java.util.List<com.ushine.web.web.authority.model.StaffDO>
     * @author : yls
     * @date : 2022/03/01 09:53
     */
    List<StaffVO> listStaffByPermissionThread(UserDO user);

    /**
     * 功能描述:
     * 〈添加员工信息，带数据权限〉
     *
     * @param staff 员工信息
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/03/01 15:00
     * @throws ServiceException 服务端自定义异常
     */
    Boolean insertStaff(StaffDO staff) throws ServiceException;

    /**
     * 功能描述:
     * 〈 修改员工，带数据权限 〉
     *
     * @param staff 员工实体数据
     * @return : java.lang.Boolean
     * @author : yls
     * @date : 2022/03/01 15:01
     * @throws ServiceException 服务端自定义异常
     */
    Boolean updateStaff(StaffDO staff) throws ServiceException;
}
